<?php

class TimkiemController extends Zend_Controller_Action {
	
	//Mang tham so nhan duoc o moi Action
	protected $_arrParam;

	//Duong dan cua Controller
	protected $_currentController;

	//Duong dan cua Action chinh
	protected $_actionMain;

	//Thong so phan trang
	protected $_paginator = array('itemCountPerPage' => 5, 'pageRange' => 3);

	public function init() {
		
		// Meta
		$this->view->headMeta()->setName('description', 'Trang web chuyên về thông tin phòng trọ.');
		$this->view->headMeta()->appendName('keywords', 'phòng trọ, phòng cho thuê, thuê phòng, nhà trọ');
		
		//Mang tham so nhan duoc o moi Action
		$this->_arrParam = $this->_request->getParams();

		//Duong dan cua Controller
		$this->_currentController = '/' . $this->_arrParam['controller'];

		//Duong dan cua Action chinh
		$this->_actionMain = '/' . $this->_arrParam['module'] . '/' . $this->_arrParam['controller'];

		$this->_paginator['currentPage'] = $this->_request->getParam('page', 1);
		$this->_arrParam['paginator'] = $this->_paginator;
		
		//Truyen ra view
		$this->view->arrParam = $this->_arrParam;
		$this->view->currentController = $this->_currentController;
		$this->view->actionMain = $this->_actionMain;
		
		$model = new Default_Model_ThongTinCtyMapper();
		$thong_tin_cty = $model->fetchAll();
		$this->view->thong_tin_cty = $thong_tin_cty;
		
		$form = new Default_Form_SendMail();
		$this->view->form_sendmailtoposter = $form;
	}

	public function ketquatimkiemAction() {
		
		// Title
		$this->view->headTitle('Kết quả tìm kiếm');
		$paginator = new Zendhlt_Paginator();
		
		// Get items tin mới của table Ptr_Tin_Rao
		$model = new Default_Model_PtrTinRaoMapper();
		$items = $model->fetch($this->_arrParam, 'trang_thai = 1', 5, array(array('colName' => 'ngay_dang', 'order' => 'DESC')), 'list');
		
		$this->view->itemsNewPtrTinTro = $items;
		
		// Get items tin hot của table Ptr_Tin_Rao
		$model = new Default_Model_PtrTinRaoMapper();
		$items = $model->fetch($this->_arrParam, 'trang_thai = 1', 5, array(array('colName' => 'luot_xem', 'order' => 'DESC')), 'list');
		
		$this->view->itemsHotPtrTinTro = $items;
		
		// Get items tin nổi bật của table Tin_Tuc
		$model = new Default_Model_TinTucMapper();
		$items = $model->fetchBy('trang_thai = 1', array(array('colName' => 'luot_xem', 'order' => 'DESC')), 1, 5, 'list');
		
		$this->view->itemsHotTinTuc = $items;
		
		if ($this->getRequest()->isPost()) {
			$formData = $this->getRequest()->getPost();
			$this->view->formData = $formData;
			
			$query = 'trang_thai = 1';
			
			if ($formData['idtinhthanh'] > 0) {
				$query .= ' and thanh_pho = ' . $formData['idtinhthanh'];
			}
		
			if ($formData['idquanhuyen'] > 0) {
				$query .= ' and quan_huyen = ' . $formData['idquanhuyen'];
			}
		
			// Giá
			if ($formData['idgia'] > 0) {
				switch ($formData['idgia']) {
					case 1:
						$query .= ' and idgia between 0 and 1000';
					break;
					
					case 2:
						$query .= ' and idgia between 1000 and 2000';
					break;
					
					case 3:
						$query .= ' and idgia between 2000 and 4000';
					break;
					
					case 4:
						$query .= ' and idgia between 4000 and 6000';
					break;
					
					case 5:
						$query .= ' and idgia > 6000';
					break;
					
					default:
						$query .= ' and idgia = 0';
					break;
				}
			}
		
			// Diện tích
			if ($formData['iddientich'] > 0) {
				switch ($formData['iddientich']) {
					case 10:
						$query .= ' and iddientich between 0 and 20';
					break;
					
					case 11:
						$query .= ' and iddientich between 20 and 40';
					break;
					
					case 12:
						$query .= ' and iddientich between 40 and 80';
					break;
					
					case 13:
						$query .= ' and iddientich between 80 and 100';
					break;
					
					case 14:
						$query .= ' and iddientich > 100';
					break;
				}
			}
		
			// Loại phòng
			if ($formData['idloaiphong'] > 0) {
				$query .= ' and loai_phong = ' . $formData['idloaiphong'];
			}
		
			// Số người ở
			if ($formData['idsonguoio'] > 0) {
				$strQuery = ' and so_nguoi_o = ' . $formData['idsonguoio'];
				if ($formData['idsonguoio'] == 11)
					$strQuery = ' and so_nguoi_o > ' . $formData['idsonguoio'];
					
				$query .= $strQuery;
			}
				
			$order = array(array('colName' => 'goi_tin', 'order' => 'ASC'), array('colName' => 'ngay_dang', 'order' => 'DESC'));
			
			$result = true;
			if ($formData['idloaitin'] > 0) {
				$this->_paginator['itemCountPerPage'] = 10;
				$model = new Default_Model_LoaiTinMapper();
				$loai_tin = $model->fetchAll('id = ' . $formData['idloaitin'], 'view');
				$model = new Default_Model_PtrTinRaoMapper();
				$strGia = 'gia_phong';
				$strDienTich = 'dien_tich';
				$action = 'ptrtinrao';
				if ($loai_tin->group_loai_tin == 1) {
					$model = new Default_Model_OghTinRaoMapper();
					$strGia = 'gia_o_ghep';
					$strDienTich = 'dien_tich_phong';
					$action = 'oghtinrao';
				}
				$query = str_replace("idgia", $strGia, $query);
				$query = str_replace("iddientich", $strDienTich, $query);
				$query .= ' and loai_tin = ' . $formData['idloaitin'];
				$search_result = $model->fetch($this->_arrParam, $query, 0, $order, 'list');
				$this->view->search_result = $search_result;
				$this->view->loai_tin = $formData['idloaitin'];
				$this->view->group_loai_tin = $loai_tin->group_loai_tin;
				$this->view->detailAction = $action;
		
				// Đếm số item trong tb_ptr_tin_rao
				$totalItem = $model->countItem(null, $query);
				$this->view->totalItem = $totalItem;
				
				if ($totalItem == 0) 
					$result = false;
		
				$paginator = new Zendhlt_Paginator();
				$this->view->panigator = $paginator->createPaginator($totalItem, $this->_paginator);
			} else {
				$this->view->itemCountPerPage = 5;
				$query = str_replace("idgia", 'gia_phong', $query);
				$query = str_replace("iddientich", 'dien_tich', $query);
		
				// Get items tìm phòng trọ của table Ptr_Tin_Rao
				$model = new Default_Model_PtrTinRaoMapper();
				$items = $model->fetch($this->_arrParam, $query . ' and loai_tin = 1', 0, $order, 'list');
				
				// Đếm số items tìm phòng trọ của table Ptr_Tin_Rao
				$totalItem = $model->countItem(null, $query . ' and loai_tin = 1');
				$ttTimPtr = $totalItem;
				
				$this->view->panigatorTPtrPtrTinTro = $paginator->createPaginator($totalItem, $this->_paginator);
				
				$this->view->itemsTPtrPtrTinTro = $items;
				$this->view->totalItemTPtrPtrTinTro = $totalItem;
				
				// Get items tìm người ở trọ của table Ptr_Tin_Rao
				$model = new Default_Model_PtrTinRaoMapper();
				$items = $model->fetch($this->_arrParam, $query . ' and loai_tin = 2', 0, $order, 'list');
				
				// Đếm số items tìm người ở trọ của table Ptr_Tin_Rao
				$totalItem = $model->countItem(null, $query . ' and loai_tin = 2');
				$ttTimNgOTr = $totalItem;
				
				$this->view->panigatorTNPtrTinTro = $paginator->createPaginator($totalItem, $this->_paginator);
				
				$this->view->itemsTNPtrTinTro = $items;
				$this->view->totalItemTNPtrTinTro = $totalItem;
				
				$query = str_replace("idgia", 'gia_o_ghep', $query);
				$query = str_replace("iddientich", 'dien_tich_phong', $query);
				
				// Get items cần ở ghép của table Ogh_Tin_Rao
				$model = new Default_Model_OghTinRaoMapper();
				$items = $model->fetch($this->_arrParam, $query . ' and loai_tin = 3', 0, $order, 'list');
				
				// Đếm số items cần ở ghép của table Ogh_Tin_Rao
				$totalItem = $model->countItem(null, $query . ' and loai_tin = 3');
				$ttCanOGh = $totalItem;
				
				$this->view->panigatorCOGOghTinTro = $paginator->createPaginator($totalItem, $this->_paginator);
				
				$this->view->itemsCOGOghTinTro = $items;
				$this->view->totalItemCOGOghTinTro = $totalItem;
				
				// Get items tìm người ở ghép của table Ogh_Tin_Rao
				$model = new Default_Model_OghTinRaoMapper();
				$items = $model->fetch($this->_arrParam, $query . ' AND loai_tin = 4', 0, $order, 'list');
				
				// Đếm số items tìm người ở ghép của table Ogh_Tin_Rao
				$totalItem = $model->countItem(null, $query . ' AND loai_tin = 4');
				$ttTimNgOGh = $totalItem;
				
				$this->view->panigatorTNOGOghTinTro = $paginator->createPaginator($totalItem, $this->_paginator);
				
				$this->view->itemsTNOGOghTinTro = $items;
				$this->view->totalItemTNOGOghTinTro = $totalItem;
				
				if ($ttTimPtr == 0 && $ttTimNgOTr == 0 && $ttTimNgOGh == 0 && $ttCanOGh == 0) 
					$result = false;
				
			}
					
			$this->view->result = $result;
		}
	}
}